home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 026a / empty.zip / EMPTY.PRG
Text File  |  1991-01-14  |  2KB  |  79 lines

  1. FUNCTION empty
  2. ***************
  3. *  Used to check whether a variable contains anything:
  4. *
  5. *       Field type          Checks for
  6. *       ----------          -------------------
  7. *       C - Character       Any character(s) other than blank(s)
  8. *       N - Numeric         Any value other than zero
  9. *       F - Float           Any value other than zero
  10. *       D - Date            Any date other than a blank field: "  /  /  "
  11. *       M - Memo            Any contents (a single line with only blanks
  12. *                               returns .F.; multiple lines always return .T.)
  13. *
  14. *  Syntax:
  15. *           empty( <expression> / <memory variable> / <field name> )
  16. *
  17. *  Returns: logical .T. or .F.
  18. *
  19. *  Samples:
  20. *
  21. *           SET PROCEDURE TO EMPTY            |
  22. *                                             |     use my_dbf
  23. *           Z = "Hello"                       |     ? empty( my_dbf->field_1 )
  24. *           ? empty( Z )                      |     .T.
  25. *           .F.                               |
  26. *                                             |     replace my_dbf->field_1 with "AnyThing"
  27. *           Z = {}                            |     ? empty( my_dbf->field_1 )
  28. *           ? empty( Z )                      |     .F.
  29. *           .T.                               |
  30. *                                             |
  31.  
  32. PARAMETERS f_variable       && may be memory variable or database field name
  33. PRIVATE f_set_talk, f_return
  34.  
  35. IF SET("TALK") = "ON"
  36.     SET TALK OFF
  37.     f_set_talk = "ON"
  38. ELSE
  39.     f_set_talk = "OFF"
  40. ENDIF
  41.  
  42. f_return = .F.      &&  FALSE means:  variable is NOT empty
  43.  
  44. DO CASE
  45.     CASE TYPE( "f_variable" ) = "C"
  46.         IF LEN( LTRIM(RTRIM( f_variable )) ) = 0
  47.             f_return = .T.
  48.         ENDIF
  49.  
  50.     CASE TYPE( "f_variable" ) = "N" .OR. TYPE( "f_variable" ) = "F"
  51.         IF f_variable = 0
  52.             f_return = .T.
  53.         ENDIF
  54.  
  55.     CASE TYPE( "f_variable" ) = "L"
  56.         f_return = .F.  && Can't check logical fields
  57.  
  58.     CASE TYPE( "f_variable" ) = "D"
  59.         IF f_variable = {}
  60.             f_return = .T.
  61.         ENDIF
  62.  
  63.     CASE TYPE( "f_variable" ) = "M"
  64.         IF LEN( f_variable ) = 0
  65.             f_return = .T.
  66.         ENDIF
  67.  
  68.     OTHERWISE   && TYPE = "U"
  69.         f_return = .T.
  70.  
  71. ENDCASE
  72.  
  73. IF f_set_talk = "ON"
  74.     SET TALK ON
  75. ENDIF
  76.  
  77. RETURN f_return
  78.  
  79.